/*
============================================================================
 Name        : ShoutcastPlayer.h
 Author      : 
 Version     :
 Copyright   : Your copyright notice
 Description : CShoutcastPlayer declaration
============================================================================
*/

#ifndef __SHOUTCASTPLAYER_H__
#define __SHOUTCASTPLAYER_H__

// INCLUDES
#include <e32std.h>
#include <e32base.h>

#include "StreamPlayer.h"
#include "ShoutcastReader.h"			//MShoutcastReaderObserver
#include "MStreamBufferObserver.h"		//MStreamBufferObserver

class CShoutcastReader;

class MShoutcastPlayerObserver : public MStreamBufferObserver, public MShoutcastReaderObserver
{
};

class CShoutcastPlayer : public CStreamPlayer
{
public: // Constructors and destructor
	~CShoutcastPlayer();
	static CShoutcastPlayer* NewL(MShoutcastPlayerObserver& aObserver);
	static CShoutcastPlayer* NewLC(MShoutcastPlayerObserver& aObserver);

private:
	CShoutcastPlayer(MShoutcastPlayerObserver& aObserver);
	void ConstructL();


private: //from CStreamPlayer


public: //new functions
	const TDesC& GetServerName();


private: //data
	//Observer
	MShoutcastPlayerObserver& iObserver;

	//Shoutcast reader
	CShoutcastReader* iReader;
};

#endif // __SHOUTCASTPLAYER_H__
